A classical computer operates by processing bits (binary digits) of information that change state according to the laws of classical physics. These information bits can be modified by using simple logic gates such as AND and OR gates. The bits are physically represented by a high or a low voltage occurring at the output of the logic gate, corresponding either to a logical one (e.g., high voltage) or a logical zero (e.g., low voltage). A classical algorithm, such as one that multiplies two integers, can be decomposed into a long string of these simple logic gates. Like a classical computer, a quantum computer also has bits and gates. Instead of storing exclusively logical ones and zeroes, a quantum bit (“qubit”) can store any quantum mechanical superposition of the two, in some sense allowing a qubit to be in both classical states simultaneously. This ability enables a quantum computer to solve certain problems with exponentially greater efficiency than that of a classical computer.